#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
//	int count = 0;
//	int a = 0;int b = 0;int c = 0;
//	for (a = 100;a < 1000;a++)
//	{
//		for (b = 10;b < 100;b++)
//		{
//			for (c = 1;c < 10;c++)
//			{
//				if (c + b < a)
//				{
//					//printf("%d %d %d", a, b, c);
//					//printf("\n");
//					count++;
//				}
//			}
//		}
//		
//	}
//	printf("%d", count);
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	for (a = 111;a < 1000;a++)
//	{
//		int x = a % 10;
//		int y = a / 10 % 10;
//		int z = a / 100;
//		if (x + y > z && x!=0 && y!=0 && z!=0 && x+z>y && z+y>x)
//			printf("%d%d%d\n",z , y,x );
//		
//	}
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//	double a, b, c;
//	int i;
//	for (i = 100;i < 1000;i++)
//	{
//		a = i % 10;
//		b = i / 10 % 10;
//		c = i / 100;
//		if (a != 0 && b != 0 && c != 0)
//		{
//			if (a + b > c || b + c > a || a + c > b)
//			{
//				printf("%d\n", i);
//			}
//		}
//	}
//}
#include<math.h>
int jc(int x)
{
	int i = 1;int ret = 1;
	for (i = 1;i <= x;i++)
	{
		ret = ret * i;
	}
	return ret;
	
}
double Mac(double x,int n)
{
	
	if (n == 0)
		return 1;
	else
	{
		double k = pow(x, n) / jc(n);
		return k + Mac(x, n - 1);
	}
}
int main()
{
	double x = 0;int n = 0;
	scanf("%lf %d",&x,&n);
	double ex = Mac(x, n);
	printf("%.6lf", ex);
	return 0;
}